package com.gibs.peixunapi.service;

import com.gibs.peixunapi.VO.UserVO;
import com.gibs.peixunapi.model.User;
import com.gibs.peixunapi.result.Result;

import java.util.List;

public interface UserService {

    /**
     * 新增单个用户
     * @param object 前段传递的经过验证的User类
     * @return
     */
    Result create(UserVO object);

    /**
	 * 根据User对象编辑用户,同时排除null值,避免空值全覆盖数据,返回Result,不带数据
	 * @param object 前段传递的经过验证的User类
	 * @return Result
	 */
    Result save(UserVO object);

    /**
     * 删除用户
     * @param id 前段传递的id
     * @return
     */
    Result delete(Integer id);


    /**
     * 删除用户
     * @param id 前段传递的id
     * @return
     */
	Result deleteBatch(List<Integer> id);

    /**
     * 根据用户id 获取个人信息
     * @param id 用户id
     * @return
     */
	Result get(Integer id) throws Exception;

    Result getList(String key);

    /**
     * 根据选择类型获取用户列表(分页数据)
     * @param type 用户类型
     * @param status 用户是否启用
     * @param page 页数
     * @param limit 每页最大条数
     * @return PageResult
     */
    Result getListPage(String type, Integer status, Integer page, Integer limit);


    /**
     * 获取用户弹窗列表
     * @param key 模糊查询关键字
     * @param page 页数
     * @param limit 最大条数
     * @return
     */
    Result getOptions(String key, Integer page, Integer limit);


    /**
     * 批量审核用户名单
     * @param idList 用户idList
     * @return
     */
    Result audit(List<Integer> idList);

    /**
     * 根据参数修改用户密码
     * @param id 用户id
     * @param password 新密码
     * @return
     */
    Result changePassword(Integer id, String password);
}

